package com.chenjt.netty.eight_nio.bufferAttribute;

import java.nio.ByteBuffer;

/**
 * 注释：只读buffer，可以随时将一个普通buffer调用asReadOnlyBuffer方法返回一个只读buffer
 * 但不能将一个只读buffer转换为读写buffer
 *
 * @author chenjt
 * @date 2024/8/21 14:21
 */
public class ReadOnlyBuffer {

    public static void main(String[] args) {
        ByteBuffer buffer = ByteBuffer.allocate(10);

        System.out.println(buffer.getClass());

        for (int i = 0; i < buffer.capacity(); i++) {
            buffer.put((byte)i);
        }

        ByteBuffer readOnlyBuffer = buffer.asReadOnlyBuffer();

        System.out.println(readOnlyBuffer.getClass());

        // 定位到0索引
        readOnlyBuffer.position(0);
        // 0索引的值修改为2，发现readonlyBuffer无法修改
        readOnlyBuffer.put((byte)2);

    }


}
